
import java.awt.Checkbox;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.*;

/**
 * <p>
 * Detalha a acao a ser executada quando acionado o BotaoDeEmergencia via a
 * sua representacao grafica (Checkbox) na interface de usuario.
 * </p>
 */
class ComandoBotaoDeEmergencia implements ItemListener {

  ///////////////////////////////////////
  // attributes


/**
 * <p>
 * Agrupamento de elementos graficos que representam o BotaoDeEmergencia
 * acionado.
 * </p>
 */
    private ArranjoBotaoDeEmergencia arranjoBotao; 

/**
 * <p>
 * Representa graficamente o proprio Botao.
 * </p>
 */
    private Checkbox botaoAndar; 


  ///////////////////////////////////////
  // operations


/**
 * <p>
 * Gera uma instancia de ComandoBotaoDeEmergencia.
 * </p>
 * 
 * @param arranjoBotao - aglomerado (Panel) de elementos graficos que
 * representa o Botao de Emergencia na InterfaceDeUsuario.
 * 
 * @return uma instancia de ComandoBotaoDeEmergencia.
 * 
 * @param botaoAndar - representa graficamente o proprio Botao.
 */
    public  ComandoBotaoDeEmergencia(ArranjoBotaoDeEmergencia arranjoBotao, Checkbox botaoAndar) {        
        this.arranjoBotao = arranjoBotao;
        this.botaoAndar = botaoAndar;
    } // end ComandoBotaoDeEmergencia        

/**
 * <p>
 * Executa a acao especificada no metodo apos o acionamento do
 * BotaoDeEmergencia.
 * </p>
 * 
 * @param e - evento que representa o acionamento do BotaoDeEmergencia.
 */
    public void itemStateChanged(ItemEvent e) {        
        if (e.getStateChange() == ItemEvent.SELECTED)
            arranjoBotao.registrarAcionamento();
        else 
        	botaoAndar.setState(true);
    } // end itemStateChanged        

 } // end ComandoBotaoDeEmergencia



